Python自制端口扫描器

您所在的位置:网站首页 python 实现端口扫描器 Python自制端口扫描器

Python自制端口扫描器

2024-06-10 11:45| 来源: 网络整理| 查看: 265

# 设置文件编码为 utf-8# -*- coding: utf-8 -*-

from PyQt5 import QtCore,QtWidgetsimport socketimport sys

class Ui_Dialog(object): def setupUi(self, Dialog): # 设置对话框的名称和大小 Dialog.setObjectName("Dialog") Dialog.resize(400, 300)

# 创建一个单行文本编辑器,用于输入要扫描的 IP 地址 self.lineEdit_ip = QtWidgets.QLineEdit(Dialog) self.lineEdit_ip.setGeometry(QtCore.QRect(40, 30, 151, 20)) self.lineEdit_ip.setObjectName("lineEdit_ip")

# 创建一个文本浏览器,用于显示扫描结果 self.tb_ip = QtWidgets.QTextBrowser(Dialog) self.tb_ip.setGeometry(QtCore.QRect(30, 80, 351, 192)) self.tb_ip.setObjectName("tb_ip")

# 创建开始扫描和取消按钮,并设置它们的名称和位置 self.bt_ok = QtWidgets.QPushButton(Dialog) self.bt_ok.setGeometry(QtCore.QRect(210, 30, 75, 23)) self.bt_ok.setObjectName("bt_ok") self.bt_cancel = QtWidgets.QPushButton(Dialog) self.bt_cancel.setGeometry(QtCore.QRect(300, 30, 75, 23)) self.bt_cancel.setObjectName("bt_cancel")

# 将控件名称翻译为指定语言 self.retranslateUi(Dialog)

# 连接信号和槽函数 QtCore.QMetaObject.connectSlotsByName(Dialog)

def retranslateUi(self, Dialog): _translate = QtCore.QCoreApplication.translate Dialog.setWindowTitle(_translate("Dialog", "私人端口扫描器")) self.bt_ok.setText(_translate("Dialog", "OK")) self.bt_ok.clicked.connect(self.start) self.bt_cancel.setText(_translate("Dialog", "Cancel")) self.bt_cancel.clicked.connect(self.stop)

def portscanner(self, host, port): try: # 创建一个套接字,设置地址类型为 IPv4,传输协议为 TCP s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 尝试与目标主机的指定端口进行连接 s.connect((host, port)) # 如果连接成功,则在文本浏览器中显示相应信息 self.tb_ip.append("这个端口开放喽: %d " % port) # 关闭套接字 s.close() except: # 发生异常,说明该端口没有开放 pass

def start(self): # 获取要扫描的 IP 地址 ip = self.lineEdit_ip.text() # 设置超时时间为 0.001 秒 socket.setdefaulttimeout(0.001) # 对 0~6000 端口进行扫描 for p in range(0, 6000): self.portscanner(ip,p) # 显示扫描结束信息 self.tb_ip.append("扫描结束啦------ByeBye")

def stop(self): # 退出程序 sys.exit()

if __name__ == "__main__": # 创建一个应用程序对象 app = QtWidgets.QApplication(sys.argv) # 创建一个对话框 form = QtWidgets.QDialog() # 创建 Ui_Dialog 对象,并将其设置为 form 的 UI ui = Ui_Dialog() ui.setupUi(form) # 显示对话框 form.show() # 运行应用程序,进入事件循环 sys.exit(app.exec_())



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3